package cn.panda.edu.swagger.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * 
 * 类描述：  再通过createRestApi函数创建Docket的Bean之后，
 * 					apiInfo()用来创建该Api的基本信息（这些基本信息会展现在文档页面中）。
 * 					select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现，本例采用指定扫描的包路径来定义，
 * 					Swagger会扫描该包下所有Controller定义的API，并产生文档内容（除了被@ApiIgnore指定的请求）。
 * @author: Administrator  
 * @date： 2018-01-05 2:20:15 PM  
 * @version 1.0
 */
@Configuration
@EnableSwagger2
public class Swagger2 {
	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2)
						.apiInfo(apiInfo())
						.select()
						.apis(RequestHandlerSelectors.basePackage("cn.panda.edu.controller"))
						.paths(PathSelectors.any())
						.build() ;
	}
	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
						.title("Panda项目组API汇总")
						.description("某某组制定")
						.termsOfServiceUrl("本机访问：http://localhost:8080/swagger-ui.html ，  "
								+ "远程访问：http://172.16.23.128:8080/swagger-ui.html")
						.version("1.0")
						.build();
	}
}
